package com.bxs.demo;

import java.util.AbstractQueue;
import java.util.concurrent.BlockingDeque;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;

/**
 * 阻塞队列实现生产者消费者测试类
 */
public class ThreadDemo {
//    public static void main(String[] args) throws InterruptedException {
//        BlockingQueue<String> que = new LinkedBlockingQueue<>(5);
//
//        Runnable producer = ()->{
//            for(int i = 0; i < 10; i++){
//                try {
//                    String data = "name-" + i;
//                    que.put(data);
//                    System.out.println("put " + data);
//                    Thread.sleep(1000);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//            }
//        };
//        Runnable consumer = ()->{
//              while(true){
//                  String poll = null;
//                  try {
//                      poll = que.take();
//                      System.out.println("take: " + poll);
//                  } catch (InterruptedException e) {
//                      e.printStackTrace();
//                  }
//
//              }
//        };
//        Thread t1 = new Thread(producer);
//        Thread t2 = new Thread(consumer);
//        t1.start();
//        t2.start();
//        t1.join();
//        t2.join();
//        System.out.println("main exit");
//    }
}
